﻿#define _CRT_SECURE_NO_WARNINGS 1

// BC134 蛇形矩阵

/*

描述
给你一个整数n，输出n∗n的蛇形矩阵。

输入描述：
输入一行，包含一个整数n
输出描述：
输出n行，每行包含n个正整数，通过空格分隔。
1<=n<=1000

示例1
输入：
4
输出：
1 2 6 7
3 5 8 13
4 9 12 14
10 11 15 16

*/

#include <stdio.h>

int main()
{
	int n = 0;
	scanf("%d", &n);

	int arr[100][100] = { 0 };

	int i = 0; 
	int j = 0;
	int count = 1;
	arr[i][j] = count++;
	while (count <= n * n)
	{
		j++;
		i--;
		while (i >= 0 && j < n)
		{
			arr[i][j] = count++;
			j++;
			i--;
		}

		i++;
		if (j == n)
		{
			j--;
			i++;
		}
		arr[i][j] = count++;
		
		i++;
		j--;
		while (j >= 0 && i < n)
		{
			arr[i][j] = count++;
			i++;
			j--;
		}

		j++;
		if (i == n)
		{
			i--;
			j++;
		}

		arr[i][j] = count++;

	}

	for (int i = 0; i < n; i++)
	{
		for (int j = 0; j < n; j++)
		{
			printf("%d ", arr[i][j]);
		}
		printf("\n");
	}


	return 0;

}